package com.bonuo.crm.domain;

import com.ruoyi.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 客户来访实体类
 * 对应数据库表：customer_visit（客户来访表）
 * 用于记录客户来访的详细信息，包括来访单位、人员信息、行程安排、接待需求等
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "CustomerVisit", description = "客户来访信息")
public class CustomerVisit extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "ID", example = "1")
    private Integer id;

    /**
     * 来客单位
     */
    @ApiModelProperty(value = "来客单位", example = "XX科技有限公司")
    private String customerUnit;

    /**
     * 来客姓名
     */
    @ApiModelProperty(value = "来客姓名", example = "张三")
    private String customerName;

    /**
     * 来客部门
     */
    @ApiModelProperty(value = "来客部门", example = "采购部")
    private String customerDepartment;

    /**
     * 来客职务
     */
    @ApiModelProperty(value = "来客职务", example = "采购经理")
    private String customerJob;

    /**
     * 来客电话
     */
    @ApiModelProperty(value = "来客电话", example = "13800138000")
    private String customerPhone;

    /**
     * 来客交通工具
     */
    @ApiModelProperty(value = "来客交通工具", example = "高铁")
    private String customerVehicle;

    /**
     * 到达车站
     */
    @ApiModelProperty(value = "到达车站", example = "上海虹桥站")
    private String arriveStation;

    /**
     * 到达时间
     */
    @ApiModelProperty(value = "到达时间", example = "2024-10-15 10:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveTime;

    /**
     * 来公司考察时间
     */
    @ApiModelProperty(value = "来公司考察时间", example = "2024-10-15 14:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inspectTime;

    /**
     * 是否需要接站
     */
    @ApiModelProperty(value = "是否需要接站（0-不需要，1-需要）", example = "1")
    private Integer isPick;

    /**
     * 接站人员
     */
    @ApiModelProperty(value = "接站人员", example = "李四")
    private String pickPeople;

    /**
     * 是否宴请
     */
    @ApiModelProperty(value = "是否宴请（0-否，1-是）", example = "1")
    private Integer isFete;

    /**
     * 宴请人员
     */
    @ApiModelProperty(value = "宴请人员", example = "王五、赵六")
    private String fatePeople;

    /**
     * 宴请地点
     */
    @ApiModelProperty(value = "宴请地点", example = "XX酒店宴会厅")
    private String fatePlace;

    /**
     * 望出席领导
     */
    @ApiModelProperty(value = "望出席领导", example = "张总、李总")
    private String presentLeader;

    /**
     * 考察目的
     */
    @ApiModelProperty(value = "考察目的", example = "合作")
    private Integer inspectReason;

    /**
     * 市场部准备材料
     */
    @ApiModelProperty(value = "市场部准备内容", example = "准备会议室，准备名牌")
    private String marketPrepareMaterial;

    /**
     * 考察流程
     */
    @ApiModelProperty(value = "考察流程", example = "14:00-15:00 展厅参观；15:30-17:00 技术交流")
    private String inspectionProcess;

    /**
     * 显示内容
     */
    @ApiModelProperty(value = "显示内容", example = "电子屏欢迎语：热烈欢迎XX公司来访")
    private String showContent;

    /**
     * 接待规格
     */
    @ApiModelProperty(value = "接待规格（建议关联字典表，如1-普通、2-VIP等）", example = "2")
    private Integer receptionSpecifications;

    /**
     * 是否需要提供礼品
     */
    @ApiModelProperty(value = "是否需要提供礼品（0-不需要，1-需要）", example = "1")
    private Integer isPresent;

    /**
     * 饮食安排
     */
    @ApiModelProperty(value = "饮食安排", example = "午餐：中式套餐；晚餐：圆桌宴请（客户对海鲜过敏）")
    private String dietaryArrangement;

    /**
     * 是否需要旅游
     */
    @ApiModelProperty(value = "是否需要旅游（0-不需要，1-需要）", example = "0")
    private Integer isTravel;

    /**
     * 旅游费用
     */
    @ApiModelProperty(value = "旅游费用（1-公司承担，2-客户承担）", example = "1")
    private Integer travelAmount;

    /**
     * 是否需要送站
     */
    @ApiModelProperty(value = "是否需要送站（0-不需要，1-需要）", example = "1")
    private Integer isSendStation;

    /**
     * 送达车站
     */
    @ApiModelProperty(value = "送达车站", example = "上海浦东机场")
    private String sendStation;

    /**
     * 送站时间
     */
    @ApiModelProperty(value = "送站时间", example = "2024-10-16 09:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;

    /**
     * 送站人员
     */
    @ApiModelProperty(value = "送站人员", example = "孙七")
    private String sendPeople;

    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注", example = "客户对海鲜过敏，宴请时需避开；考察时需重点介绍新产品A")
    private String remark;
}
    